import axios from "axios";

const instance = axios.create({
    baseURL: "http://localhost:8080",
    // baseURL: "http://feb82b66.natappfree.cc",
});
instance.defaults.timeout = 20000;
export default instance;

async function requestBookCategory() {
  return await (
    await instance.get("/book/category")
  ).data;
}

//  获取书籍封面
async function obtainBookCover(bookId) {
  return await (
    await instance.get(`/book/${bookId}/cover`)
  ).data;
}

async function getServerFileURL(api) {
  const response = await instance.get(api, {
    responseType: "arraybuffer",
  });
  if (response.status !== 200) {
    alert("获取文件失败");
    return null;
  }
  const { data, headers } = response;
  const blob = new Blob([data], {
    type: headers["content-type"] || "application/octet-stream",
  });
  console.log("type: " + headers["content-type"]);
  const url = URL.createObjectURL(blob);
  return url;
}

export { requestBookCategory, obtainBookCover, getServerFileURL };

// 添加请求拦截器
// instance.interceptors.request.use(
//   (config) => {
//     console.log("请求配置:", config);
//     return config;
//   },
//   (error) => {
//     console.error("请求错误:", error);
//     return Promise.reject(error);
//   }
// );

// // 添加响应拦截器
// instance.interceptors.response.use(
//   (response) => {
//     console.log("响应数据:", response.data);
//     return response;
//   },
//   (error) => {
//     if (error.response) {
//       // 服务器响应了但状态码不在2xx范围
//       console.error("响应错误:", error.response.status, error.response.data);
//     } else if (error.request) {
//       // 请求已发出但未收到响应
//       console.error("网络错误:", error.message);
//     } else {
//       // 其他错误
//       console.error("未知错误:", error.message);
//     }
//     return Promise.reject(error);
//   }
// );

//
